home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-08-20 | 136.0 KB | 69 lines | [TEXT/CCL ] |
-
- (export (quote (plispprogram braceexpression defineplispfunction)) :glisp)
-
- (glisp::declarereservedwords (quote plisp) (quote (add alternatives appearance beginlist branches call do endlist failmessage if lisp literal literals order otherwise remove repeat rewritesto rule rules value variable)))
-
- (defpfun plispprogram nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote plispprogram)) (glisp::lcall (quote sourcelanguage) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote plisp))) (cdr glisp::!dest)) nil) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 1))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::lcall (quote plispfunction) nil nil) (glisp::slvariable 2) (or (nextis? (quote \;)) (failure "';'")) (glisp::lcall (quote flush) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 1 0)) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rcall (quote reservedwords) nil nil) (glisp::mrvariable 2) (glisp::rendlist) (glisp::endplispfunction (quote plispprogram))) ((call sourcelanguage ((literal plisp))) (repeat 1 0 ((call plispfunction) (variable 2) (literal \;) (call flush))) (rewritesto) (beginlist) (call reservedwords) (variable 2 t ((endlist)))))
-
- (defpfun plispfunction nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote plispfunction)) (glisp::lcall (quote pfunction) nil nil) (glisp::slvariable 1) (case (peek) (= (next) (glisp::lcall (quote plisprules) nil nil) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote defineplispfunction) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 2) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (cdr glisp::!dest)) nil)) (\( (next) (case (peek) (appearance (next) (or (nextis? (quote order)) (failure "'order'")) (or (nextis? (quote \))) (failure "')'")) (or (nextis? (quote =)) (failure "'='")) (glisp::lcall (quote plisprules) nil nil) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote defineplispfunction) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 2) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (cdr glisp::!dest)) nil)) (add (next) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote rule)) (failure "'rule'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote rules)) (failure "'rules'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'rule' or 'rules'" t))) (glisp::deletedecisionpoint)) (case (peek) (\) (next) (or (nextis? (quote =)) (failure "'='")) (glisp::lcall (quote plisprules) nil nil) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote addrules))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 3) (glisp::rendlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist)) (\, (next) (or (nextis? (quote appearance)) (failure "'appearance'")) (or (nextis? (quote order)) (failure "'order'")) (or (nextis? (quote \))) (failure "')'")) (or (nextis? (quote =)) (failure "'='")) (glisp::lcall (quote plisprules) nil nil) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote addrules))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 3) (glisp::rendlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist)) (t (failure "')' or ','")))) (remove (next) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote rule)) (failure "'rule'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote rules)) (failure "'rules'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'rule' or 'rules'" t))) (glisp::deletedecisionpoint)) (or (nextis? (quote \))) (failure "')'")) (or (nextis? (quote =)) (failure "'='")) (glisp::lcall (quote plisprules) nil nil) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote removerules))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 3) (glisp::rendlist) (glisp::rendlist)) (t (failure "'appearance' or 'add' or 'remove'")))) (t (failure "'=' or '('"))) (glisp::endplispfunction (quote plispfunction))) ((call pfunction) (variable 1) (literals (= (call plisprules) (variable 2) (rewritesto) (call defineplispfunction ((variable 1) (variable 2) (literal nil)))) (\( (literals (appearance (literal order) (literal \)) (literal =) (call plisprules) (variable 2) (rewritesto) (call defineplispfunction ((variable 1) (variable 2) (literal t)))) (add (alternatives 2 ((literal rule)) ((literal rules))) (literals (\) (literal =) (call plisprules) (variable 3) (rewritesto) (beginlist) (literal addrules) (beginlist) (literal quote) (variable 1) (endlist) (beginlist) (literal quote) (variable 3) (endlist) (literal nil) (endlist)) (\, (literal appearance) (literal order) (literal \)) (literal =) (call plisprules) (variable 3) (rewritesto) (beginlist) (literal addrules) (beginlist) (literal quote) (variable 1) (endlist) (beginlist) (literal quote) (variable 3) (endlist) (literal t) (endlist)))) (remove (alternatives 2 ((literal rule)) ((literal rules))) (literal \)) (literal =) (call plisprules) (variable 3) (rewritesto) (beginlist) (literal removerules) (beginlist) (literal quote) (variable 1) (endlist) (beginlist) (literal quote) (variable 3) (endlist) (endlist)))))))
-
- (defpfun plisprules nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote plisprules)) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 1))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (> glisp::!repeatcount 1) (catch !failure (or (nextis? (quote \,)) (failure "','")) nil) (glisp::restoredecisionpoint)) (and (catch !failure (glisp::lcall (quote plisprule) nil nil) (glisp::slvariable 2) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 1 0)) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 2) (glisp::endplispfunction (quote plisprules))) ((repeat 1 0 ((call plisprule) (variable 2)) ((literal \,))) (rewritesto) (variable 2)))
-
- (defpfun plisprule nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote plisprule)) (glisp::lcall (quote lhs) nil nil) (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 1) (or (nextis? (quote -)) (failure "'-'")) (or (nextis? (quote >)) (failure "'>'")) (glisp::lcall (quote rhs) nil nil) (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::mrvariable 1) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote rewritesto))) (glisp::rendlist) (glisp::mrvariable 2) (glisp::rendlist) (glisp::endplispfunction (quote plisprule))) ((call lhs) (call pattern) (variable 1) (literal -) (literal >) (call rhs) (call pattern) (variable 2) (rewritesto) (beginlist) (variable 1 t ((beginlist) (literal rewritesto) (endlist) (variable 2 t ((endlist)))))))
-
- (defpfun pattern nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote pattern)) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 1))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::lcall (quote item) nil nil) (glisp::slvariable 2) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 1 0)) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 2) (glisp::endplispfunction (quote pattern))) ((repeat 1 0 ((call item) (variable 2))) (rewritesto) (variable 2)))
-
- (defpfun item nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote item)) (glisp::setdecisionpoint) (and (catch !failure (case (peek) (\: (next) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote \:)) (failure "':'")) (glisp::lcall (quote pvariable) nil nil) (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote \))) (failure "')'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote variable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote endlist))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote variable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::srvariable 2) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "')' or <pattern>" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote pvariable) nil nil) (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote variable))) (glisp::srvariable 1) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "':' or <pvariable>" t)) (glisp::deletedecisionpoint)) (\. (next) (or (nextis? (quote \.)) (failure "'.'")) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote \.)) (failure "'.'")) (glisp::lcall (quote pvariable) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote \.))) (cdr glisp::!dest)) nil) (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote \))) (failure "')'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote variable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote endlist))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote variable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::srvariable 2) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "')' or <pattern>" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote pvariable) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote \.))) (cdr glisp::!dest)) nil) (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote variable))) (glisp::srvariable 1) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'.' or <pvariable>" t)) (glisp::deletedecisionpoint)) (< (next) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote <)) (failure "'<'")) (glisp::lcall (quote fnname) nil nil) (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote >)) (failure "'>'")) (or (nextis? (quote >)) (failure "'>'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote call))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote rhs) nil nil) (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 2) (glisp::lcall (quote phs) nil nil) (or (nextis? (quote >)) (failure "'>'")) (or (nextis? (quote >)) (failure "'>'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote call))) (glisp::srvariable 1) (glisp::srvariable 2) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'>' or <rhs>" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote fnname) nil nil) (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote >)) (failure "'>'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote call))) (glisp::srvariable 1) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote rhs) nil nil) (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 2) (glisp::lcall (quote phs) nil nil) (or (nextis? (quote >)) (failure "'>'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote call))) (glisp::srvariable 1) (glisp::srvariable 2) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'>' or <rhs>" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'<' or <fnname>" t)) (glisp::deletedecisionpoint)) ([ (next) (glisp::lcall (quote pvariable) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote [))) (cdr glisp::!dest)) nil) (glisp::slvariable 1) (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 2) (case (peek) (] (next) (glisp::setdecisionpoint) (and (catch !failure (let ((glisp::altvar (and (glisp::vbound? 3) (not glisp::!inrepeat) (glisp::veval 3 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote *)) (failure "'*'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 3 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote +)) (failure "'+'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 3 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'*' or '+'" t))) (glisp::deletedecisionpoint)) (glisp::lcall (quote controlvar) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeat))) (glisp::srvariable 4) (case (glisp::altcheck 3) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 0)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 1)))) (t (failure "'0' or '1'"))) (glisp::srvariable 2) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote controlvar) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::srvariable 3) (glisp::srvariable 2) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'*' or '+' or <controlvar>" t)) (glisp::deletedecisionpoint)) (/ (next) (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 3) (or (nextis? (quote ])) (failure "']'")) (let ((glisp::altvar (and (glisp::vbound? 4) (not glisp::!inrepeat) (glisp::veval 4 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote *)) (failure "'*'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote +)) (failure "'+'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'*' or '+'" t))) (glisp::deletedecisionpoint)) (glisp::lcall (quote controlvar) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (glisp::slvariable 5) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeat))) (glisp::srvariable 5) (case (glisp::altcheck 4) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 0)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 1)))) (t (failure "'0' or '1'"))) (glisp::srvariable 2) (glisp::srvariable 3) (glisp::rendlist)) (\| (next) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 3))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (> glisp::!repeatcount 1) (catch !failure (or (nextis? (quote \|)) (failure "'|'")) nil) (glisp::restoredecisionpoint)) (and (catch !failure (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 4) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 3 0)) (case (peek) (] (next) (glisp::setdecisionpoint) (and (catch !failure (let ((glisp::altvar (and (glisp::vbound? 6) (not glisp::!inrepeat) (glisp::veval 6 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote *)) (failure "'*'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 6 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote +)) (failure "'+'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 6 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'*' or '+'" t))) (glisp::deletedecisionpoint)) (glisp::lcall (quote controlvar) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (glisp::slvariable 7) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeat))) (glisp::srvariable 7) (case (glisp::altcheck 6) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 0)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 1)))) (t (failure "'0' or '1'"))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::rcall (quote pvariable) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote \|))) (cdr glisp::!dest)) nil) (glisp::srvariable 2) (glisp::mrvariable 4) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote controlvar) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (glisp::slvariable 5) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::srvariable 5) (glisp::srvariable 2) (glisp::mrvariable 4) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'*' or '+' or <controlvar>" t)) (glisp::deletedecisionpoint)) (/ (next) (glisp::lcall (quote pattern) nil nil) (glisp::slvariable 5) (or (nextis? (quote ])) (failure "']'")) (let ((glisp::altvar (and (glisp::vbound? 7) (not glisp::!inrepeat) (glisp::veval 7 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote *)) (failure "'*'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 7 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote +)) (failure "'+'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 7 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'*' or '+'" t))) (glisp::deletedecisionpoint)) (glisp::lcall (quote controlvar) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (glisp::slvariable 8) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeat))) (glisp::srvariable 8) (case (glisp::altcheck 7) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 0)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote 1)))) (t (failure "'0' or '1'"))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::rcall (quote pvariable) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote \|))) (cdr glisp::!dest)) nil) (glisp::srvariable 2) (glisp::mrvariable 4) (glisp::rendlist) (glisp::rendlist) (glisp::srvariable 5) (glisp::rendlist)) (t (failure "']' or '/'")))) (t (failure "']' or '/' or '|'")))) (\( (next) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote beginlist))) (glisp::rendlist)) (\) (next) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote endlist))) (glisp::rendlist)) ({ (next) (case (peek) (if (next) (glisp::lcall (quote braceexpression) nil nil) (glisp::slvariable 1) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote \:)) (failure "':'")) (or (nextis? (quote failmessage)) (failure "'failmessage'")) (glisp::lcall (quote braceexpression) nil nil) (glisp::slvariable 3) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "':' or something" t))) (glisp::deletedecisionpoint)) (or (nextis? (quote })) (failure "'}'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lisp))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote if))) (glisp::srvariable 1) (case (glisp::altcheck 2) (1 (glisp::srvariable 3)) (2) (t (failure ":3 or something"))) (glisp::rendlist)) (do (next) (glisp::lcall (quote braceexpression) nil nil) (glisp::slvariable 1) (or (nextis? (quote })) (failure "'}'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lisp))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote do))) (glisp::srvariable 1) (glisp::rendlist)) (value (next) (glisp::lcall (quote braceexpression) nil nil) (glisp::slvariable 1) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote \:)) (failure "':'")) (or (nextis? (quote failmessage)) (failure "'failmessage'")) (glisp::lcall (quote braceexpression) nil nil) (glisp::slvariable 3) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "':' or something" t))) (glisp::deletedecisionpoint)) (or (nextis? (quote })) (failure "'}'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lisp))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote value))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (case (glisp::altcheck 2) (1 (glisp::srvariable 3)) (2) (t (failure ":3 or something"))) (glisp::rendlist)) ({ (next) (or (nextis? (quote value)) (failure "'value'")) (glisp::lcall (quote braceexpression) nil nil) (glisp::slvariable 1) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote \:)) (failure "':'")) (or (nextis? (quote failmessage)) (failure "'failmessage'")) (glisp::lcall (quote braceexpression) nil nil) (glisp::slvariable 3) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "':' or something" t))) (glisp::deletedecisionpoint)) (or (nextis? (quote })) (failure "'}'")) (or (nextis? (quote })) (failure "'}'")) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lisp))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote value))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (case (glisp::altcheck 2) (1 (glisp::srvariable 3)) (2) (t (failure ":3 or something"))) (glisp::rendlist)) (t (failure "'if' or 'do' or 'value' or '{'")))) (t (failure "':' or '.' or '<' or '[' or '(' or ')' or '{'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote aliteral) nil nil) (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literal))) (glisp::srvariable 1) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "':' or '.' or '<' or '[' or '(' or ')' or '{' or <aliteral>" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote item))) ((branches ((literals (\: (branches ((literal \:) (call pvariable) (variable 1) (branches ((literal \)) (rewritesto) (beginlist) (literal variable) (variable 1) (literal t) (beginlist) (beginlist) (literal endlist) (endlist) (endlist) (endlist)) ((call pattern) (variable 2) (rewritesto) (beginlist) (literal variable) (variable 1) (literal t) (variable 2) (endlist)))) ((call pvariable) (variable 1) (rewritesto) (beginlist) (literal variable) (variable 1) (endlist)))) (\. (literal \.) (branches ((literal \.) (call pvariable ((literal \.))) (variable 1) (branches ((literal \)) (rewritesto) (beginlist) (literal variable) (variable 1) (literal t) (beginlist) (beginlist) (literal endlist) (endlist) (endlist) (endlist)) ((call pattern) (variable 2) (rewritesto) (beginlist) (literal variable) (variable 1) (literal t) (variable 2) (endlist)))) ((call pvariable ((literal \.))) (variable 1) (rewritesto) (beginlist) (literal variable) (variable 1) (endlist)))) (< (branches ((literal <) (call fnname) (variable 1) (branches ((literal >) (literal >) (rewritesto) (beginlist) (literal call) (variable 1) (literal nil) (literal t) (endlist)) ((call rhs) (call pattern) (variable 2) (call phs) (literal >) (literal >) (rewritesto) (beginlist) (literal call) (variable 1) (variable 2) (literal t) (endlist)))) ((call fnname) (variable 1) (branches ((literal >) (rewritesto) (beginlist) (literal call) (variable 1) (endlist)) ((call rhs) (call pattern) (variable 2) (call phs) (literal >) (rewritesto) (beginlist) (literal call) (variable 1) (variable 2) (endlist)))))) ([ (call pvariable ((literal [))) (variable 1) (call pattern) (variable 2) (literals (] (branches ((alternatives 3 ((literal *)) ((literal +))) (call controlvar ((variable 1))) (variable 4) (rewritesto) (beginlist) (literal repeat) (variable 4) (alternatives 3 ((literal 0)) ((literal 1))) (variable 2) (endlist)) ((call controlvar ((variable 1))) (variable 3) (rewritesto) (beginlist) (literal alternatives) (variable 3) (variable 2) (literal nil) (endlist)))) (/ (call pattern) (variable 3) (literal ]) (alternatives 4 ((literal *)) ((literal +))) (call controlvar ((variable 1))) (variable 5) (rewritesto) (beginlist) (literal repeat) (variable 5) (alternatives 4 ((literal 0)) ((literal 1))) (variable 2) (variable 3) (endlist)) (\| (repeat 3 0 ((call pattern) (variable 4)) ((literal \|))) (literals (] (branches ((alternatives 6 ((literal *)) ((literal +))) (call controlvar ((variable 1))) (variable 7) (rewritesto) (beginlist) (literal repeat) (variable 7) (alternatives 6 ((literal 0)) ((literal 1))) (beginlist) (beginlist) (literal alternatives) (call pvariable ((literal \|))) (variable 2) (variable 4 t ((endlist))) (endlist) (endlist)) ((call controlvar ((variable 1))) (variable 5) (rewritesto) (beginlist) (literal alternatives) (variable 5) (variable 2) (variable 4 t ((endlist)))))) (/ (call pattern) (variable 5) (literal ]) (alternatives 7 ((literal *)) ((literal +))) (call controlvar ((variable 1))) (variable 8) (rewritesto) (beginlist) (literal repeat) (variable 8) (alternatives 7 ((literal 0)) ((literal 1))) (beginlist) (beginlist) (literal alternatives) (call pvariable ((literal \|))) (variable 2) (variable 4 t ((endlist))) (endlist) (variable 5) (endlist)))))) (\( (rewritesto) (beginlist) (literal beginlist) (endlist)) (\) (rewritesto) (beginlist) (literal endlist) (endlist)) ({ (literals (if (call braceexpression) (variable 1) (alternatives 2 ((literal \:) (literal failmessage) (call braceexpression) (variable 3)) nil) (literal }) (rewritesto) (beginlist) (literal lisp) (literal if) (variable 1) (alternatives 2 ((variable 3)) nil) (endlist)) (do (call braceexpression) (variable 1) (literal }) (rewritesto) (beginlist) (literal lisp) (literal do) (variable 1) (endlist)) (value (call braceexpression) (variable 1) (alternatives 2 ((literal \:) (literal failmessage) (call braceexpression) (variable 3)) nil) (literal }) (rewritesto) (beginlist) (literal lisp) (literal value) (variable 1) (literal nil) (alternatives 2 ((variable 3)) nil) (endlist)) ({ (literal value) (call braceexpression) (variable 1) (alternatives 2 ((literal \:) (literal failmessage) (call braceexpression) (variable 3)) nil) (literal }) (literal }) (rewritesto) (beginlist) (literal lisp) (literal value) (variable 1) (literal t) (alternatives 2 ((variable 3)) nil) (endlist)))))) ((call aliteral) (variable 1) (rewritesto) (beginlist) (literal literal) (variable 1) (endlist)))))
-
- (defpfun aliteral nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote aliteral)) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote \')) (failure "'''")) (setq glisp::!dest (glisp::xnew)) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote identifier) nil nil) (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote makereservedword) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote anumber) nil nil) (setq glisp::!dest (glisp::xnew)) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote astring) nil nil) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote perror) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote "strings are not currently allowed on the left sides of rules"))) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onright> or <onleft>" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "''' or <identifier> or <anumber> or <astring>" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote aliteral))) ((branches ((literal \') (rewritesto)) ((call identifier) (variable 1) (rewritesto) (call makereservedword ((variable 1)))) ((call anumber) (rewritesto)) ((call astring) (branches ((call onright) (rewritesto)) ((call onleft) (rewritesto) (call perror ((literal "strings are not currently allowed on the left sides of rules")))))))))
-
- (defpfun defineplispfunction nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote defineplispfunction)) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::slvariable 3) (glisp::lcall (quote mergerules) (let ((glisp::!dest (glisp::xnew))) (glisp::rcall (quote reverse) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) nil) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (glisp::lcall (quote expandrules) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 4) (glisp::endplispfunction (quote defineplispfunction))) ((variable 1) (variable 2) (variable 3) (call mergerules ((call reverse ((variable 2))) (literal nil) (variable 3))) (call expandrules ((variable 1))) (variable 4) (rewritesto) (variable 4)))
-
- (defpfun pfunction nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote pfunction)) (glisp::lcall (quote identifier) nil nil) (glisp::slvariable 1) (glisp::lcall (quote checkfunction) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1) (glisp::endplispfunction (quote pfunction))) ((call identifier) (variable 1) (call checkfunction ((variable 1))) (rewritesto) (variable 1)))
-
- (defpfun reparseplispfunction nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote reparseplispfunction)) (glisp::lcall (quote plispfunction) nil nil) (glisp::slvariable 1) (or (nextis? (quote \;)) (failure "';'")) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1) (glisp::endplispfunction (quote reparseplispfunction))) ((call plispfunction) (variable 1) (literal \;) (rewritesto) (variable 1)))
-
- (defpfun fnname nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote fnname)) (let ((glisp::altvar (and (glisp::vbound? 1) (not glisp::!inrepeat) (glisp::veval 1 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote identifier) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote \')) (failure "'''")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<identifier> or '''" t))) (glisp::deletedecisionpoint)) (setq glisp::!dest (glisp::xnew)) (glisp::endplispfunction (quote fnname))) ((alternatives 1 ((call identifier)) ((literal \'))) (rewritesto)))
-
- (defpfun controlvar nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote controlvar)) (glisp::slvariable 1) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote =)) (failure "'='")) (or (nextis? (quote \:)) (failure "':'")) (glisp::lcall (quote pvariable) nil nil) (glisp::slvariable 3) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'=' or something" t))) (glisp::deletedecisionpoint)) (setq glisp::!dest (glisp::xnew)) (case (glisp::altcheck 2) (1 (glisp::srvariable 3) (glisp::rcall (quote restorename) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote [))) (glisp::srvariable 1) (cdr glisp::!dest)) nil)) (2 (glisp::srvariable 1)) (t (failure ":3 or :1"))) (glisp::endplispfunction (quote controlvar))) ((variable 1) (alternatives 2 ((literal =) (literal \:) (call pvariable) (variable 3)) nil) (rewritesto) (alternatives 2 ((variable 3) (call restorename ((literal [) (variable 1)))) ((variable 1)))))
-
- (defpfun braceexpression nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote braceexpression)) (glisp::endplispfunction (quote braceexpression))) nil)
-
- (defpfun removerule nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote removerule)) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote linearmatch) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 2) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote removerule2) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 2) (cdr glisp::!dest)) nil) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 3) nil) (glisp::restoredecisionpoint) (catch !failure (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote pwarning) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote "couldn't remove the rule
- "))) (glisp::rcall (quote ruletostring) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (setq glisp::!dest (glisp::xcons glisp::!dest (quote "
- from
- "))) (glisp::rcall (quote ruletostring) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) nil) (cdr glisp::!dest)) nil) (glisp::srvariable 2) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<linearmatch> or <removerule2> or nothing" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote removerule))) ((variable 1) (variable 2) (branches ((call linearmatch ((variable 1) (variable 2))) (literal t) (rewritesto) (literal nil)) ((call removerule2 ((variable 1) (variable 2))) (variable 3) (rewritesto) (variable 3)) ((rewritesto) (call pwarning ((literal "couldn't remove the rule
- ") (call ruletostring ((variable 1))) (literal "
- from
- ") (call ruletostring ((variable 2))))) (variable 2)))))
-
- (defpfun removerule2 nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote removerule2)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (case (peek) (rewritesto (next) (glisp::lendlist) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote rewritesto)) (failure "'rewritesto'")) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (literal (next) (glisp::slvariable 1) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote literals)) (failure "'literals'")) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::lendlist) (glisp::lcall (quote assoc) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 3) (setq glisp::!dest (glisp::xcons glisp::!dest (quote :test))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote equalp))) (cdr glisp::!dest)) nil) (glisp::lbeginlist) (glisp::slvariable 1) (glisp::mlvariable 4 t t) (glisp::lendlist) (let ((glisp::altvar (and (glisp::vbound? 5) (not glisp::!inrepeat) (glisp::veval 5 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote linearmatch) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 4) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 5 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (glisp::lcall (quote removerule2) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 4) (cdr glisp::!dest)) nil) (glisp::slvariable 6) nil) (glisp::restoredecisionpoint))) (glisp::vset 5 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<linearmatch> or <removerule2>" t))) (glisp::deletedecisionpoint)) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote consolidateliterals) (let ((glisp::!dest (glisp::xnew))) (case (glisp::altcheck 5) (1 (glisp::rcall (quote remove) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::mrvariable 4) (glisp::rendlist) (glisp::srvariable 3) (setq glisp::!dest (glisp::xcons glisp::!dest (quote :test))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote equalp))) (cdr glisp::!dest)) nil)) (2 (glisp::rcall (quote substitute) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::mrvariable 6) (glisp::rendlist) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::mrvariable 4) (glisp::rendlist) (glisp::srvariable 3) (setq glisp::!dest (glisp::xcons glisp::!dest (quote :test))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote equalp))) (cdr glisp::!dest)) nil)) (t (failure "<remove> or <substitute>"))) (cdr glisp::!dest)) nil)) (t (failure "'rewritesto' or 'literal'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::slvariable 1) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::rcall (quote removerule2) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 2) (glisp::rendlist) (glisp::rbeginlist) (glisp::mrvariable 3) (glisp::rendlist) (cdr glisp::!dest)) t) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote branches)) (failure "'branches'")) (cond ((glisp::vbound? 2) (glisp::mlvariable 2 nil t) (glisp::slvariable 3) (let ((glisp::altvar (and (glisp::vbound? 4) (not glisp::!inrepeat) (glisp::veval 4 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote linearmatch) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (glisp::lcall (quote removerule2) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (glisp::slvariable 5) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<linearmatch> or <removerule2>" t))) (glisp::deletedecisionpoint)) (glisp::mlvariable 6 t t) (glisp::lendlist) (glisp::lendlist)) (t (loop (glisp::setdecisionpoint) (cond ((empty?) (glisp::deletedecisionpoint) (failure "::2")) ((catch !failure (glisp::slvariable 3) (let ((glisp::altvar (and (glisp::vbound? 4) (not glisp::!inrepeat) (glisp::veval 4 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote linearmatch) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (glisp::lcall (quote removerule2) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (glisp::slvariable 5) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<linearmatch> or <removerule2>" t))) (glisp::deletedecisionpoint)) (glisp::mlvariable 6 t t) (glisp::lendlist) (glisp::lendlist) nil) (glisp::restoredecisionpoint)) (t (return))) (glisp::deletedecisionpoint) (glisp::mlvariable 2 nil nil)))) (glisp::deletedecisionpoint) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote consolidatebranches) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 2) (case (glisp::altcheck 4) (1) (2 (glisp::srvariable 5)) (t (failure "something or :5"))) (glisp::mrvariable 6) (glisp::rendlist) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote removerule2))) ((branches ((beginlist) (branches ((beginlist) (literals (rewritesto (endlist) (variable 1 t ((endlist))) (beginlist) (beginlist) (literal rewritesto) (endlist) (variable 2 t ((endlist))) (rewritesto) (literal nil)) (literal (variable 1) (endlist) (variable 2 t ((endlist))) (beginlist) (beginlist) (literal literals) (variable 3 t ((endlist))) (endlist) (call assoc ((variable 1) (variable 3) (literal :test) (literal equalp))) (beginlist) (variable 1) (variable 4 t ((endlist))) (alternatives 5 ((call linearmatch ((variable 2) (variable 4))) (literal t)) ((call removerule2 ((variable 2) (variable 4))) (variable 6))) (rewritesto) (call consolidateliterals ((alternatives 5 ((call remove ((beginlist) (variable 1) (variable 4 t ((endlist))) (variable 3) (literal :test) (literal equalp)))) ((call substitute ((beginlist) (variable 1) (variable 6 t ((endlist))) (beginlist) (variable 1) (variable 4 t ((endlist))) (variable 3) (literal :test) (literal equalp)))))))))) ((variable 1) (variable 2 t ((endlist))) (beginlist) (variable 1) (variable 3 t ((endlist))) (rewritesto) (beginlist) (variable 1) (call removerule2 ((beginlist) (variable 2 t ((endlist))) (beginlist) (variable 3 t ((endlist)))) t) (endlist)))) ((variable 1) (beginlist) (beginlist) (literal branches) (variable 2 t ((variable 3) (alternatives 4 ((call linearmatch ((variable 1) (variable 3))) (literal t)) ((call removerule2 ((variable 1) (variable 3))) (variable 5))) (variable 6 t ((endlist))) (endlist))) (rewritesto) (call consolidatebranches ((beginlist) (variable 2 t ((alternatives 4 nil ((variable 5))) (variable 6 t ((endlist)))))))))))
-
- (defpfun consolidatebranches nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote consolidatebranches)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::slvariable 1) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::mrvariable 1) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote consolidatebranches))) ((branches ((beginlist) (variable 1) (endlist) (rewritesto) (variable 1)) ((variable 1) (rewritesto) (beginlist) (beginlist) (literal branches) (variable 1 t ((endlist))) (endlist)))))
-
- (defpfun consolidateliterals nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote consolidateliterals)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (glisp::slvariable 1) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literal))) (glisp::srvariable 1) (glisp::rendlist) (glisp::mrvariable 2) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literals))) (glisp::mrvariable 1) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote consolidateliterals))) ((branches ((beginlist) (beginlist) (variable 1) (variable 2 t ((endlist))) (endlist) (rewritesto) (beginlist) (beginlist) (literal literal) (variable 1) (endlist) (variable 2 t ((endlist)))) ((variable 1) (rewritesto) (beginlist) (beginlist) (literal literals) (variable 1 t ((endlist))) (endlist)))))
-
- (defpfun mergerules nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote mergerules)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::slvariable 1) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::slvariable 3) (glisp::setdecisionpoint) (and (catch !failure (glisp::slvariable 4) (glisp::lcall (quote mergerule) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 3) (glisp::srvariable 4) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) (glisp::slvariable 5) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote mergerules) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 2) (glisp::rendlist) (glisp::srvariable 5) (glisp::srvariable 4) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (glisp::lcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 3) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote mergerules) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 2) (glisp::rendlist) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::srvariable 3) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote mergerules) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 2) (glisp::rendlist) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::srvariable 1) (glisp::srvariable 3) (glisp::rendlist) (glisp::rendlist) (glisp::srvariable 4) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure ":4 or 'nil' or :4" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (glisp::slvariable 1) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or 'nil'" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote mergerules))) ((branches ((beginlist) (variable 1) (variable 2 t ((endlist))) (variable 3) (branches ((variable 4) (call mergerule ((variable 1) (variable 3) (variable 4) (variable 1))) (literal t) (variable 5) (rewritesto) (call mergerules ((beginlist) (variable 2 t ((endlist))) (variable 5) (variable 4)))) ((literal nil) (call before ((variable 3) (variable 1))) (literal t) (rewritesto) (call mergerules ((beginlist) (variable 2 t ((endlist))) (beginlist) (beginlist) (literal branches) (variable 3) (variable 1) (endlist) (endlist) (literal nil)))) ((variable 4) (rewritesto) (call mergerules ((beginlist) (variable 2 t ((endlist))) (beginlist) (beginlist) (literal branches) (variable 1) (variable 3) (endlist) (endlist) (variable 4)))))) ((literal nil) (variable 1) (variable 2) (rewritesto) (variable 1)))))
-
- (defpfun mergerule nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote mergerule)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (or (nextis? (quote rewritesto)) (failure "'rewritesto'")) (glisp::lendlist) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote rewritesto)) (failure "'rewritesto'")) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::slvariable 3) (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote pwarning) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote "existing rule being replaced with:
- "))) (glisp::rcall (quote ruletostring) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 4) (cdr glisp::!dest)) nil) (cdr glisp::!dest)) nil) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote rewritesto))) (glisp::rendlist) (glisp::mrvariable 1) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::slvariable 1) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::slvariable 4) (glisp::slvariable 5) (glisp::lcall (quote mergerule) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 3) (glisp::srvariable 4) (glisp::srvariable 5) (cdr glisp::!dest)) nil) (case (peek) ((t) (next) (glisp::slvariable 6) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::mrvariable 6) (glisp::rendlist)) ((nil) (next) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::rcall (quote mergebranches) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::srvariable 4) (glisp::srvariable 5) (glisp::srvariable 2) (glisp::rbeginlist) (glisp::srvariable 3) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::rendlist)) (t (failure "'t' or 'nil'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lbeginlist) (or (nextis? (quote literal)) (failure "'literal'")) (glisp::slvariable 1) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (literal (next) (glisp::slvariable 3) (glisp::lendlist) (glisp::mlvariable 4 t t) (glisp::lendlist) (glisp::slvariable 5) (glisp::slvariable 6) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literals))) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::mrvariable 2) (glisp::rendlist) (glisp::rbeginlist) (glisp::srvariable 3) (glisp::mrvariable 4) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist)) (literals (next) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::lendlist) (glisp::slvariable 4) (glisp::slvariable 5) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::rcall (quote mergeliterals) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 2) (glisp::srvariable 3) (glisp::srvariable 4) (glisp::srvariable 5) (cdr glisp::!dest)) nil) (glisp::rendlist)) (t (failure "'literal' or 'literals'"))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1 or '('" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote branches)) (failure "'branches'")) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lendlist) (glisp::slvariable 3) (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (glisp::rcall (quote mergebranches) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::srvariable 3) (glisp::srvariable 4) (glisp::srvariable 1) (glisp::srvariable 2) (cdr glisp::!dest)) nil) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::srvariable 1) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (glisp::slvariable 2) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::srvariable 1) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 2) (glisp::slvariable 3) (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'nil' or :2" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1 or 'nil' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote mergerule))) ((branches ((beginlist) (branches ((beginlist) (literal rewritesto) (endlist) (variable 1 t ((endlist))) (beginlist) (beginlist) (literal rewritesto) (endlist) (variable 2 t ((endlist))) (variable 3) (variable 4) (rewritesto) (call pwarning ((literal "existing rule being replaced with:
- ") (call ruletostring ((variable 4))))) (literal t) (beginlist) (beginlist) (literal rewritesto) (endlist) (variable 1 t ((endlist)))) ((variable 1) (variable 2 t ((endlist))) (beginlist) (variable 1) (variable 3 t ((endlist))) (variable 4) (variable 5) (call mergerule ((variable 2) (variable 3) (variable 4) (variable 5))) (literals (t (variable 6) (rewritesto) (literal t) (beginlist) (variable 1) (variable 6 t ((endlist)))) (nil (rewritesto) (literal t) (beginlist) (variable 1) (call mergebranches ((literal nil) (variable 4) (variable 5) (variable 2) (beginlist) (variable 3) (endlist))) (endlist)))) ((beginlist) (literal literal) (variable 1) (endlist) (variable 2 t ((endlist))) (beginlist) (beginlist) (literals (literal (variable 3) (endlist) (variable 4 t ((endlist))) (variable 5) (variable 6) (rewritesto) (literal t) (beginlist) (beginlist) (literal literals) (beginlist) (variable 1) (variable 2 t ((endlist))) (beginlist) (variable 3) (variable 4 t ((endlist))) (endlist) (endlist)) (literals (variable 3 t ((endlist))) (endlist) (variable 4) (variable 5) (rewritesto) (literal t) (beginlist) (call mergeliterals ((variable 1) (variable 2) (variable 3) (variable 4) (variable 5))) (endlist)))))) ((variable 1) (beginlist) (beginlist) (literal branches) (variable 2 t ((endlist))) (endlist) (variable 3) (variable 4) (rewritesto) (literal t) (beginlist) (call mergebranches ((literal t) (variable 3) (variable 4) (variable 1) (variable 2))) (endlist)) ((literal nil) (variable 1) (variable 2) (variable 3) (rewritesto) (literal t) (variable 1)) ((variable 1) (branches ((literal nil) (variable 2) (variable 3) (rewritesto) (literal t) (variable 1)) ((variable 2) (variable 3) (variable 4) (rewritesto) (literal nil)))))))
-
- (defpfun mergeliterals nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote mergeliterals)) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::slvariable 3) (glisp::slvariable 4) (glisp::slvariable 5) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote assoc) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::srvariable 3) (setq glisp::!dest (glisp::xcons glisp::!dest (quote :test))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote equalp))) (cdr glisp::!dest)) nil) (glisp::lbeginlist) (glisp::slvariable 1) (glisp::mlvariable 6 t t) (glisp::lendlist) (glisp::lcall (quote mergerule) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 6) (glisp::srvariable 4) (glisp::srvariable 5) (cdr glisp::!dest)) nil) (case (peek) ((t) (next) (glisp::slvariable 7) (setq glisp::!dest (glisp::xnew)) (rplacd (assoc (glisp::veval 1) (glisp::veval 3) :test (function equalp)) (glisp::veval 7)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literals))) (glisp::mrvariable 3) (glisp::rendlist)) ((nil) (next) (glisp::lcall (quote mergebranches) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::srvariable 4) (glisp::srvariable 5) (glisp::srvariable 2) (glisp::rbeginlist) (glisp::srvariable 6) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::slvariable 7) (setq glisp::!dest (glisp::xnew)) (rplacd (assoc (glisp::veval 1) (glisp::veval 3) :test (function equalp)) (list (glisp::veval 7))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literals))) (glisp::mrvariable 3) (glisp::rendlist)) (t (failure "'t' or 'nil'"))) nil) (glisp::restoredecisionpoint) (catch !failure (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literals))) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::mrvariable 2) (glisp::rendlist) (glisp::mrvariable 3) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<assoc> or nothing" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote mergeliterals))) ((variable 1) (variable 2) (variable 3) (variable 4) (variable 5) (branches ((call assoc ((variable 1) (variable 3) (literal :test) (literal equalp))) (beginlist) (variable 1) (variable 6 t ((endlist))) (call mergerule ((variable 2) (variable 6) (variable 4) (variable 5))) (literals (t (variable 7) (rewritesto) (lisp do (rplacd (assoc (glisp::veval 1) (glisp::veval 3) :test (function equalp)) (glisp::veval 7))) (beginlist) (literal literals) (variable 3 t ((endlist)))) (nil (call mergebranches ((literal nil) (variable 4) (variable 5) (variable 2) (beginlist) (variable 6) (endlist))) (variable 7) (rewritesto) (lisp do (rplacd (assoc (glisp::veval 1) (glisp::veval 3) :test (function equalp)) (list (glisp::veval 7)))) (beginlist) (literal literals) (variable 3 t ((endlist)))))) ((rewritesto) (beginlist) (literal literals) (beginlist) (variable 1) (variable 2 t ((endlist))) (variable 3 t ((endlist)))))))
-
- (defpfun mergebranches nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote mergebranches)) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote t)) (failure "'t'")) (case (peek) ((nil) (next) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::lbeginlist) (cond ((glisp::vbound? 3) (glisp::mlvariable 3 nil t) (glisp::slvariable 4) (glisp::lcall (quote mergerule) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 4) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) (glisp::slvariable 5) (glisp::mlvariable 6 t t) (glisp::lendlist)) (t (loop (glisp::setdecisionpoint) (cond ((empty?) (glisp::deletedecisionpoint) (failure "::3")) ((catch !failure (glisp::slvariable 4) (glisp::lcall (quote mergerule) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 4) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) (glisp::slvariable 5) (glisp::mlvariable 6 t t) (glisp::lendlist) nil) (glisp::restoredecisionpoint)) (t (return))) (glisp::deletedecisionpoint) (glisp::mlvariable 3 nil nil)))) (glisp::deletedecisionpoint) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::mrvariable 3) (glisp::srvariable 5) (glisp::mrvariable 6) (glisp::rendlist)) ((t) (next) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::lbeginlist) (glisp::slvariable 3) (glisp::mlvariable 4 t t) (glisp::lendlist) (glisp::lcall (quote mergerule) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 3) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (or (nextis? (quote t)) (failure "'t'")) (glisp::slvariable 5) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::srvariable 5) (glisp::mrvariable 4) (glisp::rendlist)) (t (failure "'nil' or 't'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (case (peek) ((nil) (next) (glisp::slvariable 2) (glisp::slvariable 3) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (cond ((glisp::vbound? 4) (glisp::mlvariable 4 nil t) (glisp::slvariable 5) (glisp::lcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 5) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (or (nextis? (quote nil)) (failure "'nil'")) (glisp::mlvariable 6 t t) (glisp::lendlist)) (t (loop (glisp::setdecisionpoint) (cond ((empty?) (glisp::deletedecisionpoint) (failure "::4")) ((catch !failure (glisp::slvariable 5) (glisp::lcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 5) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (or (nextis? (quote nil)) (failure "'nil'")) (glisp::mlvariable 6 t t) (glisp::lendlist) nil) (glisp::restoredecisionpoint)) (t (return))) (glisp::deletedecisionpoint) (glisp::mlvariable 4 nil nil)))) (glisp::deletedecisionpoint) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::mrvariable 4) (glisp::srvariable 3) (glisp::srvariable 5) (glisp::mrvariable 6) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::mrvariable 4) (glisp::srvariable 3) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :4" t)) (glisp::deletedecisionpoint)) ((t) (next) (glisp::slvariable 2) (glisp::slvariable 3) (glisp::slvariable 4) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::srvariable 3) (glisp::mrvariable 4) (glisp::rendlist)) (t (failure "'nil' or 't'"))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'t' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote mergebranches))) ((branches ((literal t) (literals (nil (variable 1) (variable 2) (beginlist) (variable 3 t ((variable 4) (call mergerule ((variable 2) (variable 4) (literal nil) (variable 1))) (literal t) (variable 5) (variable 6 t ((endlist))))) (rewritesto) (beginlist) (literal branches) (variable 3 t ((variable 5) (variable 6 t ((endlist)))))) (t (variable 1) (variable 2) (beginlist) (variable 3) (variable 4 t ((endlist))) (call mergerule ((variable 2) (variable 3) (literal t) (variable 1))) (literal t) (variable 5) (rewritesto) (beginlist) (literal branches) (variable 5) (variable 4 t ((endlist)))))) ((variable 1) (literals (nil (variable 2) (variable 3) (branches ((beginlist) (variable 4 t ((variable 5) (call before ((variable 5) (variable 3))) (literal nil) (variable 6 t ((endlist))))) (rewritesto) (beginlist) (literal branches) (variable 4 t ((variable 3) (variable 5) (variable 6 t ((endlist)))))) ((variable 4) (rewritesto) (beginlist) (literal branches) (variable 4 t ((variable 3) (endlist)))))) (t (variable 2) (variable 3) (variable 4) (rewritesto) (beginlist) (literal branches) (variable 3) (variable 4 t ((endlist)))))))))
-
- (defpfun before nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote before)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (or (nextis? (quote rewritesto)) (failure "'rewritesto'")) (glisp::lendlist) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote rewritesto)) (failure "'rewritesto'")) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::slvariable 1) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 3) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lbeginlist) (or (nextis? (quote rewritesto)) (failure "'rewritesto'")) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure ":1 or '('" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lbeginlist) (case (peek) (rewritesto (next) (glisp::lendlist) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::slvariable 2) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (literal (next) (glisp::slvariable 1) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (literal (next) (glisp::slvariable 3) (glisp::lendlist) (glisp::mlvariable 4 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (literals (next) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (t (failure "'literal' or 'literals'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :3" t)) (glisp::deletedecisionpoint)) (literals (next) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (literal (next) (glisp::slvariable 2) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (literals (next) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (t (failure "'literal' or 'literals'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :2" t)) (glisp::deletedecisionpoint)) (t (failure "'rewritesto' or 'literal' or 'literals'"))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1 or '('" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (literal (next) (glisp::slvariable 2) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (literals (next) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (t (failure "'literal' or 'literals'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (lisp (next) (or (nextis? (quote value)) (failure "'value'")) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (lisp (next) (or (nextis? (quote value)) (failure "'value'")) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::mlvariable 4 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (beginlist (next) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (t (failure "'lisp' or 'beginlist'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :3" t)) (glisp::deletedecisionpoint)) (beginlist (next) (glisp::lendlist) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t)))) (endlist (next) (glisp::lendlist) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (t (failure "'lisp' or 'beginlist' or 'endlist'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (lisp (next) (or (nextis? (quote value)) (failure "'value'")) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (beginlist (next) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (endlist (next) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t)))) (t (failure "'lisp' or 'beginlist' or 'endlist'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (call (next) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote variable)) (failure "'variable'")) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::mlvariable 4 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t)))) (variable (next) (glisp::setdecisionpoint) (and (catch !failure (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote call)) (failure "'call'")) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::mlvariable 4 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote variable)) (failure "'variable'")) (glisp::slvariable 4) (glisp::mlvariable 5 t t) (glisp::lendlist) (glisp::mlvariable 6 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (< (glisp::veval 1) (glisp::veval 4)))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote variable)) (failure "'variable'")) (glisp::slvariable 3) (or (nextis? (quote t)) (failure "'t'")) (glisp::slvariable 4) (glisp::lendlist) (glisp::mlvariable 5 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) nil) (glisp::restoredecisionpoint) (catch !failure (or (nextis? (quote t)) (failure "'t'")) (glisp::slvariable 2) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote variable)) (failure "'variable'")) (glisp::slvariable 4) (glisp::setdecisionpoint) (and (catch !failure (glisp::lendlist) (glisp::mlvariable 5 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) nil) (glisp::restoredecisionpoint) (catch !failure (or (nextis? (quote t)) (failure "'t'")) (glisp::slvariable 5) (glisp::lendlist) (glisp::mlvariable 6 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 2) (glisp::mrvariable 3) (glisp::rendlist) (glisp::rbeginlist) (glisp::mrvariable 5) (glisp::mrvariable 6) (glisp::rendlist) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "')' or 't'" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "::2 or ')' or 't'" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "::1 or :1" t)) (glisp::deletedecisionpoint)) (repeat (next) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeat))) (glisp::mrvariable 1) (glisp::rendlist) (glisp::mrvariable 2) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (cdr glisp::!dest)) nil)) (alternatives (next) (glisp::mlvariable 1 t t) (glisp::lendlist) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::mrvariable 1) (glisp::rendlist) (glisp::mrvariable 2) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 3) (cdr glisp::!dest)) nil) (cdr glisp::!dest)) nil)) (t (failure "'call' or 'variable' or 'repeat' or 'alternatives'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (repeat (next) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeat))) (glisp::mrvariable 2) (glisp::rendlist) (glisp::mrvariable 3) (glisp::rendlist) (cdr glisp::!dest)) nil) (cdr glisp::!dest)) nil)) (alternatives (next) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote before) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::mrvariable 2) (glisp::rendlist) (glisp::mrvariable 3) (glisp::rendlist) (cdr glisp::!dest)) nil) (cdr glisp::!dest)) nil)) (t (failure "'repeat' or 'alternatives'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :2" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1 or '(' or :1 or '(' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote before))) ((branches ((beginlist) (branches ((beginlist) (literal rewritesto) (endlist) (variable 1 t ((endlist))) (beginlist) (beginlist) (literal rewritesto) (endlist) (variable 2 t ((endlist))) (rewritesto) (literal nil)) ((variable 1) (variable 2 t ((endlist))) (beginlist) (branches ((variable 1) (variable 3 t ((endlist))) (rewritesto) (call before ((variable 2) (variable 3)))) ((beginlist) (literal rewritesto) (endlist) (variable 3 t ((endlist))) (rewritesto) (literal t)))) ((beginlist) (literals (rewritesto (endlist) (variable 1 t ((endlist))) (beginlist) (variable 2) (variable 3 t ((endlist))) (rewritesto) (literal nil)) (literal (variable 1) (endlist) (variable 2 t ((endlist))) (branches ((beginlist) (beginlist) (literals (literal (variable 3) (endlist) (variable 4 t ((endlist))) (rewritesto) (literal nil)) (literals (variable 3 t ((endlist))) (endlist) (rewritesto) (literal nil)))) ((variable 3) (rewritesto) (literal t)))) (literals (variable 1 t ((endlist))) (endlist) (branches ((beginlist) (beginlist) (literals (literal (variable 2) (endlist) (variable 3 t ((endlist))) (rewritesto) (literal nil)) (literals (variable 2 t ((endlist))) (endlist) (rewritesto) (literal nil)))) ((variable 2) (rewritesto) (literal t)))))))) ((variable 1) (beginlist) (beginlist) (literals (literal (variable 2) (endlist) (variable 3 t ((endlist))) (rewritesto) (literal nil)) (literals (variable 2 t ((endlist))) (endlist) (rewritesto) (literal nil)))) ((beginlist) (beginlist) (literals (lisp (literal value) (variable 1 t ((endlist))) (variable 2 t ((endlist))) (branches ((beginlist) (beginlist) (literals (lisp (literal value) (variable 3 t ((endlist))) (variable 4 t ((endlist))) (rewritesto) (literal nil)) (beginlist (endlist) (variable 3 t ((endlist))) (rewritesto) (literal nil)))) ((variable 3) (rewritesto) (literal t)))) (beginlist (endlist) (variable 1 t ((endlist))) (variable 2) (rewritesto) (literal t)) (endlist (endlist) (variable 1 t ((endlist))) (variable 2) (rewritesto) (literal nil)))) ((variable 1) (beginlist) (beginlist) (literals (lisp (literal value) (variable 2 t ((endlist))) (variable 3 t ((endlist))) (rewritesto) (literal nil)) (beginlist (endlist) (variable 2 t ((endlist))) (rewritesto) (literal nil)) (endlist (endlist) (variable 2 t ((endlist))) (rewritesto) (literal t)))) ((beginlist) (beginlist) (literals (call (variable 1 t ((endlist))) (variable 2 t ((endlist))) (beginlist) (beginlist) (literal variable) (variable 3 t ((endlist))) (variable 4 t ((endlist))) (rewritesto) (literal t)) (variable (branches ((variable 1 t ((endlist))) (variable 2 t ((endlist))) (beginlist) (beginlist) (literal call) (variable 3 t ((endlist))) (variable 4 t ((endlist))) (rewritesto) (literal nil)) ((variable 1) (branches ((variable 2 t ((endlist))) (variable 3 t ((endlist))) (beginlist) (beginlist) (literal variable) (variable 4) (variable 5 t ((endlist))) (variable 6 t ((endlist))) (rewritesto) (lisp value (< (glisp::veval 1) (glisp::veval 4)) nil)) ((endlist) (variable 2 t ((endlist))) (beginlist) (beginlist) (literal variable) (variable 3) (literal t) (variable 4) (endlist) (variable 5 t ((endlist))) (rewritesto) (literal t)) ((literal t) (variable 2) (endlist) (variable 3 t ((endlist))) (beginlist) (beginlist) (literal variable) (variable 4) (branches ((endlist) (variable 5 t ((endlist))) (rewritesto) (literal nil)) ((literal t) (variable 5) (endlist) (variable 6 t ((endlist))) (rewritesto) (call before ((beginlist) (variable 2 t ((variable 3 t ((endlist))) (beginlist) (variable 5 t ((variable 6 t ((endlist)))))))))))))))) (repeat (variable 1 t ((endlist))) (variable 2 t ((endlist))) (variable 3) (rewritesto) (call before ((call strip ((beginlist) (beginlist) (literal repeat) (variable 1 t ((endlist))) (variable 2 t ((endlist))))) (call strip ((variable 3)))))) (alternatives (variable 1 t ((endlist))) (variable 2 t ((endlist))) (variable 3) (rewritesto) (call before ((call strip ((beginlist) (beginlist) (literal alternatives) (variable 1 t ((endlist))) (variable 2 t ((endlist))))) (call strip ((variable 3)))))))) ((variable 1) (branches ((beginlist) (beginlist) (literals (repeat (variable 2 t ((endlist))) (variable 3 t ((endlist))) (rewritesto) (call before ((variable 1) (call strip ((beginlist) (beginlist) (literal repeat) (variable 2 t ((endlist))) (variable 3 t ((endlist)))))))) (alternatives (variable 2 t ((endlist))) (variable 3 t ((endlist))) (rewritesto) (call before ((variable 1) (call strip ((beginlist) (beginlist) (literal alternatives) (variable 2 t ((endlist))) (variable 3 t ((endlist)))))))))) ((variable 2) (rewritesto) (literal nil)))))))
-
- (defpfun strip nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote strip)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (case (peek) (repeat (next) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::slvariable 3) (let ((glisp::altvar (and (glisp::vbound? 4) (not glisp::!inrepeat) (glisp::veval 4 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::slvariable 5) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 4 2 nil)) (progn (glisp::deletedecisionpoint) (failure ":5 or something" t))) (glisp::deletedecisionpoint)) (glisp::lendlist) (glisp::mlvariable 6 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 3) (case (glisp::altcheck 4) (1 (glisp::mrvariable 5)) (2) (t (failure "::5 or something"))) (glisp::mrvariable 6) (glisp::rendlist) (cdr glisp::!dest)) nil)) (alternatives (next) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::mlvariable 3 t t) (glisp::lendlist) (glisp::mlvariable 4 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote strip) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::mrvariable 2) (glisp::mrvariable 4) (glisp::rendlist) (cdr glisp::!dest)) nil)) (t (failure "'repeat' or 'alternatives'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote strip))) ((branches ((beginlist) (beginlist) (literals (repeat (variable 1) (variable 2) (variable 3) (alternatives 4 ((variable 5)) nil) (endlist) (variable 6 t ((endlist))) (rewritesto) (call strip ((beginlist) (variable 3 t ((alternatives 4 ((variable 5 t nil)) nil) (variable 6 t ((endlist)))))))) (alternatives (variable 1) (variable 2) (variable 3 t ((endlist))) (variable 4 t ((endlist))) (rewritesto) (call strip ((beginlist) (variable 2 t ((variable 4 t ((endlist)))))))))) ((variable 1) (rewritesto) (variable 1)))))
-
- (defpfun expandrules nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote expandrules)) (glisp::slvariable 1) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote defpfun))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote let))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !variables))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !inrepeat))) (glisp::rendlist) (glisp::rcall (quote lhs) nil nil) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote beginplispfunction))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote endplispfunction))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::srvariable 2) (glisp::rendlist) (glisp::endplispfunction (quote expandrules))) ((variable 1) (variable 2) (rewritesto) (beginlist) (literal defpfun) (variable 1) (literal nil) (beginlist) (literal let) (beginlist) (literal !dest) (literal !variables) (literal !inrepeat) (endlist) (call lhs) (beginlist) (literal beginplispfunction) (beginlist) (literal quote) (variable 1) (endlist) (endlist) (call expandpattern ((variable 2)) t) (beginlist) (literal endplispfunction) (beginlist) (literal quote) (variable 1) (endlist) (endlist) (endlist) (variable 2) (endlist)))
-
- (defpfun expandpattern nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote expandpattern)) (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 2))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::rcall (quote expanditem) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) t) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 2 0)) (glisp::rendlist) (glisp::endplispfunction (quote expandpattern))) ((variable 1) (rewritesto) (beginlist) (repeat 2 0 ((call expanditem ((variable 1)) t))) (endlist)))
-
- (defpfun expanditem nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote expanditem)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (case (peek) (literal (next) (glisp::slvariable 1) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote or))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nextis?))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literal))) (glisp::srvariable 1) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote setq))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote xcons))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t)) (glisp::deletedecisionpoint)) (variable (next) (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote t)) (failure "'t'")) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (glisp::lendlist) (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote mlvariable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lbeginlist) (glisp::lbeginlist) (or (nextis? (quote endlist)) (failure "'endlist'")) (glisp::lendlist) (glisp::lendlist) (glisp::lendlist) (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote mlvariable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote endlist))) (glisp::rendlist) (glisp::rendlist) (cdr glisp::!dest)) t) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 2) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote cond))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote vbound?))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote mlvariable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote loop))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote setdecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote cond))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote empty?))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote variable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::srvariable 2) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote catch))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !failure))) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote restoredecisionpoint))) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote return))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote mlvariable))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote mrvariable))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'nil' or '(' or :2" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote slvariable))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote srvariable))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'t' or ')'" t)) (glisp::deletedecisionpoint)) (call (next) (glisp::slvariable 1) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (or (nextis? (quote t)) (failure "'t'")) (glisp::lendlist) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote onleft) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (glisp::lcall (quote onright) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t))) (glisp::deletedecisionpoint)) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (case (glisp::altcheck 2) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote lcall)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote rcall)))) (t (failure "'lcall' or 'rcall'"))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 2) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote t)) (failure "'t'")) (glisp::lendlist) (let ((glisp::altvar (and (glisp::vbound? 3) (not glisp::!inrepeat) (glisp::veval 3 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote onleft) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 3 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (glisp::lcall (quote onright) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 3 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t))) (glisp::deletedecisionpoint)) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (case (glisp::altcheck 3) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote lcall)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote rcall)))) (t (failure "'lcall' or 'rcall'"))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote let))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote xnew))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rcall (quote rhs) nil nil) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rcall (quote phs) nil nil) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote cdr))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rendlist) (glisp::rendlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lendlist) (let ((glisp::altvar (and (glisp::vbound? 3) (not glisp::!inrepeat) (glisp::veval 3 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote onleft) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 3 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (glisp::lcall (quote onright) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 3 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t))) (glisp::deletedecisionpoint)) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (case (glisp::altcheck 3) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote lcall)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote rcall)))) (t (failure "'lcall' or 'rcall'"))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote let))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote xnew))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rcall (quote rhs) nil nil) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rcall (quote phs) nil nil) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote cdr))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rendlist) (glisp::rendlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'t' or ')'" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lendlist) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::lcall (quote onleft) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (glisp::lcall (quote onright) nil nil) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t))) (glisp::deletedecisionpoint)) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (case (glisp::altcheck 2) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote lcall)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote rcall)))) (t (failure "'lcall' or 'rcall'"))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote quote))) (glisp::srvariable 1) (glisp::rendlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'nil' or :2 or ')'" t)) (glisp::deletedecisionpoint)) (beginlist (next) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lbeginlist))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote rbeginlist))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t)) (glisp::deletedecisionpoint)) (endlist (next) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lendlist))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote rendlist))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t)) (glisp::deletedecisionpoint)) (repeat (next) (glisp::slvariable 1) (glisp::slvariable 2) (glisp::slvariable 3) (let ((glisp::altvar (and (glisp::vbound? 4) (not glisp::!inrepeat) (glisp::veval 4 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::slvariable 5) nil) (glisp::restoredecisionpoint))) (glisp::vset 4 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 4 2 nil)) (progn (glisp::deletedecisionpoint) (failure ":5 or something" t))) (glisp::deletedecisionpoint)) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote let))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !inrepeat))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !repeatcount))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote 0))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote max))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeatmax))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote loop))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote setdecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote cond))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote or))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeatstop?))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote max))) (glisp::rendlist) (case (glisp::altcheck 4) (1 (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote and))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote >))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !repeatcount))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote 1))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote catch))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !failure))) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 5) (cdr glisp::!dest)) t) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote restoredecisionpoint))) (glisp::rendlist) (glisp::rendlist)) (2) (t (failure "'(' or something"))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote and))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote catch))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !failure))) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 3) (cdr glisp::!dest)) t) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote restoredecisionpoint))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote return))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote repeatset))) (glisp::srvariable 1) (glisp::srvariable 2) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist)) (alternatives (next) (glisp::slvariable 1) (glisp::mlvariable 2 t t) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote let))) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote altvar))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote and))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote vbound?))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote not))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !inrepeat))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote veval))) (glisp::srvariable 1) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote setdecisionpoint))) (glisp::rendlist) (setf (glisp::veval 3) 0) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote or))) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 4))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (setf (glisp::veval 3) (+ (glisp::veval 3) 1)) (glisp::rcall (quote expandalternative) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (glisp::srvariable 1) (glisp::srvariable 3) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 4 0)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote progn))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::srvariable 1) (glisp::mrvariable 2) (glisp::rendlist) (cdr glisp::!dest)) nil) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote case))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote altcheck))) (glisp::srvariable 1) (glisp::rendlist) (setf (glisp::veval 3) 0) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 4))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (setf (glisp::veval 3) (+ (glisp::veval 3) 1)))) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rendlist) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 4 0)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote alternatives))) (glisp::srvariable 1) (glisp::mrvariable 2) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t)) (glisp::deletedecisionpoint)) (lisp (next) (case (peek) (do (next) (glisp::slvariable 1) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::rendlist)) (if (next) (glisp::slvariable 1) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::slvariable 3) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure ":3 or something" t))) (glisp::deletedecisionpoint)) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote or))) (glisp::srvariable 1) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (case (glisp::altcheck 2) (1 (glisp::srvariable 3)) (2 (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lisp))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote if))) (glisp::srvariable 1) (glisp::rendlist) (cdr glisp::!dest)) nil)) (t (failure ":3 or <humanize>"))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist)) (value (next) (glisp::slvariable 1) (let ((glisp::altvar (and (glisp::vbound? 2) (not glisp::!inrepeat) (glisp::veval 2 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote t)) (failure "'t'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 2 2 nil)) (progn (glisp::deletedecisionpoint) (failure "'t' or 'nil'" t))) (glisp::deletedecisionpoint)) (let ((glisp::altvar (and (glisp::vbound? 3) (not glisp::!inrepeat) (glisp::veval 3 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (glisp::slvariable 4) nil) (glisp::restoredecisionpoint))) (glisp::vset 3 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (glisp::vset 3 2 nil)) (progn (glisp::deletedecisionpoint) (failure ":4 or something" t))) (glisp::deletedecisionpoint)) (glisp::lendlist) (glisp::setdecisionpoint) (and (catch !failure (glisp::lcall (quote onleft) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote or))) (glisp::rbeginlist) (case (glisp::altcheck 2) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote nextare?)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote nextis?)))) (t (failure "'nextare?' or 'nextis?'"))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (case (glisp::altcheck 3) (1 (glisp::srvariable 4)) (2 (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lisp))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote value))) (glisp::srvariable 1) (glisp::rendlist) (cdr glisp::!dest)) nil)) (t (failure ":4 or <humanize>"))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lcall (quote onright) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote setq))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rbeginlist) (case (glisp::altcheck 2) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote xappend)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote xcons)))) (t (failure "'xappend' or 'xcons'"))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::srvariable 1) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "<onleft> or <onright>" t)) (glisp::deletedecisionpoint)) (t (failure "'do' or 'if' or 'value'")))) (rewritesto (next) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote rhs) nil nil) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote setq))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !dest))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote xnew))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist)) (literals (next) (glisp::mlvariable 1 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote case))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote peek))) (glisp::rendlist) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 2))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::rcall (quote lhs) nil nil) (glisp::rcall (quote expandliteral) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 2 0)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote literals))) (glisp::mrvariable 1) (glisp::rendlist) (cdr glisp::!dest)) nil) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist)) (branches (next) (glisp::mlvariable 1 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote setdecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote and))) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 2))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::rcall (quote lhs) nil nil) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote catch))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !failure))) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) t) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote restoredecisionpoint))) (glisp::rendlist) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 2 0)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote failure))) (glisp::rcall (quote humanize) (let ((glisp::!dest (glisp::xnew))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote branches))) (glisp::mrvariable 1) (glisp::rendlist) (cdr glisp::!dest)) nil) (setq glisp::!dest (glisp::xcons glisp::!dest (quote t))) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote deletedecisionpoint))) (glisp::rendlist) (glisp::rendlist)) (t (failure "'literal' or 'variable' or 'call' or 'beginlist' or 'endlist' or 'repeat' or 'alternatives' or 'lisp' or 'rewritesto' or 'literals' or 'branches'"))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (perror "unrecognized item in a pattern: " (glisp::veval 1)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote expanditem))) ((branches ((beginlist) (literals (literal (variable 1) (endlist) (branches ((call onleft) (rewritesto) (beginlist) (beginlist) (literal or) (beginlist) (literal nextis?) (beginlist) (literal quote) (variable 1) (endlist) (endlist) (beginlist) (literal failure) (call humanize ((beginlist) (literal literal) (variable 1) (endlist))) (endlist) (endlist) (endlist)) ((call onright) (rewritesto) (beginlist) (beginlist) (literal setq) (literal !dest) (beginlist) (literal xcons) (literal !dest) (beginlist) (literal quote) (variable 1) (endlist) (endlist) (endlist) (endlist)))) (variable (variable 1) (branches ((literal t) (branches ((literal nil) (endlist) (call onleft) (rewritesto) (beginlist) (beginlist) (literal mlvariable) (variable 1) (literal t) (literal t) (endlist) (endlist)) ((beginlist) (beginlist) (literal endlist) (endlist) (endlist) (endlist) (call onleft) (rewritesto) (beginlist) (beginlist) (literal mlvariable) (variable 1) (literal t) (literal t) (endlist) (call expandpattern ((beginlist) (beginlist) (literal endlist) (endlist) (endlist)) t) (endlist)) ((variable 2) (endlist) (branches ((call onleft) (rewritesto) (beginlist) (beginlist) (literal cond) (beginlist) (beginlist) (literal vbound?) (variable 1) (endlist) (beginlist) (literal mlvariable) (variable 1) (literal nil) (literal t) (endlist) (call expandpattern ((variable 2)) t) (endlist) (beginlist) (literal t) (beginlist) (literal loop) (beginlist) (literal setdecisionpoint) (endlist) (beginlist) (literal cond) (beginlist) (beginlist) (literal empty?) (endlist) (beginlist) (literal deletedecisionpoint) (endlist) (beginlist) (literal failure) (call humanize ((beginlist) (literal variable) (variable 1) (literal t) (variable 2) (endlist))) (endlist) (endlist) (beginlist) (beginlist) (literal catch) (literal !failure) (call expandpattern ((variable 2)) t) (literal nil) (endlist) (beginlist) (literal restoredecisionpoint) (endlist) (endlist) (beginlist) (literal t) (beginlist) (literal return) (endlist) (endlist) (endlist) (beginlist) (literal deletedecisionpoint) (endlist) (beginlist) (literal mlvariable) (variable 1) (literal nil) (literal nil) (endlist) (endlist) (endlist) (endlist) (beginlist) (literal deletedecisionpoint) (endlist) (endlist)) ((call onright) (rewritesto) (beginlist) (beginlist) (literal mrvariable) (variable 1) (endlist) (call expandpattern ((variable 2)) t) (endlist)))))) ((endlist) (branches ((call onleft) (rewritesto) (beginlist) (beginlist) (literal slvariable) (variable 1) (endlist) (endlist)) ((call onright) (rewritesto) (beginlist) (beginlist) (literal srvariable) (variable 1) (endlist) (endlist)))))) (call (variable 1) (branches ((literal nil) (literal t) (endlist) (alternatives 2 ((call onleft)) ((call onright))) (rewritesto) (beginlist) (beginlist) (alternatives 2 ((literal lcall)) ((literal rcall))) (beginlist) (literal quote) (variable 1) (endlist) (literal nil) (literal t) (endlist) (endlist)) ((variable 2) (branches ((literal t) (endlist) (alternatives 3 ((call onleft)) ((call onright))) (rewritesto) (beginlist) (beginlist) (alternatives 3 ((literal lcall)) ((literal rcall))) (beginlist) (literal quote) (variable 1) (endlist) (beginlist) (literal let) (beginlist) (beginlist) (literal !dest) (beginlist) (literal xnew) (endlist) (endlist) (endlist) (call rhs) (call expandpattern ((variable 2)) t) (call phs) (beginlist) (literal cdr) (literal !dest) (endlist) (endlist) (literal t) (endlist) (endlist)) ((endlist) (alternatives 3 ((call onleft)) ((call onright))) (rewritesto) (beginlist) (beginlist) (alternatives 3 ((literal lcall)) ((literal rcall))) (beginlist) (literal quote) (variable 1) (endlist) (beginlist) (literal let) (beginlist) (beginlist) (literal !dest) (beginlist) (literal xnew) (endlist) (endlist) (endlist) (call rhs) (call expandpattern ((variable 2)) t) (call phs) (beginlist) (literal cdr) (literal !dest) (endlist) (endlist) (literal nil) (endlist) (endlist)))) ((endlist) (alternatives 2 ((call onleft)) ((call onright))) (rewritesto) (beginlist) (beginlist) (alternatives 2 ((literal lcall)) ((literal rcall))) (beginlist) (literal quote) (variable 1) (endlist) (literal nil) (literal nil) (endlist) (endlist)))) (beginlist (endlist) (branches ((call onleft) (rewritesto) (beginlist) (beginlist) (literal lbeginlist) (endlist) (endlist)) ((call onright) (rewritesto) (beginlist) (beginlist) (literal rbeginlist) (endlist) (endlist)))) (endlist (endlist) (branches ((call onleft) (rewritesto) (beginlist) (beginlist) (literal lendlist) (endlist) (endlist)) ((call onright) (rewritesto) (beginlist) (beginlist) (literal rendlist) (endlist) (endlist)))) (repeat (variable 1) (variable 2) (variable 3) (alternatives 4 ((variable 5)) nil) (endlist) (rewritesto) (beginlist) (beginlist) (literal let) (beginlist) (beginlist) (literal !inrepeat) (literal t) (endlist) (beginlist) (literal !repeatcount) (literal 0) (endlist) (beginlist) (literal max) (beginlist) (literal repeatmax) (variable 1) (endlist) (endlist) (endlist) (beginlist) (literal loop) (beginlist) (literal setdecisionpoint) (endlist) (beginlist) (literal cond) (beginlist) (beginlist) (literal or) (beginlist) (literal repeatstop?) (literal max) (endlist) (alternatives 4 ((beginlist) (literal and) (beginlist) (literal >) (literal !repeatcount) (literal 1) (endlist) (beginlist) (literal catch) (literal !failure) (call expandpattern ((variable 5)) t) (literal nil) (endlist) (beginlist) (literal restoredecisionpoint) (endlist) (endlist)) nil) (beginlist) (literal and) (beginlist) (literal catch) (literal !failure) (call expandpattern ((variable 3)) t) (literal nil) (endlist) (beginlist) (literal restoredecisionpoint) (endlist) (endlist) (endlist) (beginlist) (literal deletedecisionpoint) (endlist) (beginlist) (literal return) (endlist) (endlist) (endlist) (beginlist) (literal deletedecisionpoint) (endlist) (endlist) (beginlist) (literal repeatset) (variable 1) (variable 2) (endlist) (endlist) (endlist)) (alternatives (variable 1) (variable 2 t ((endlist))) (branches ((call onleft) (rewritesto) (beginlist) (beginlist) (literal let) (beginlist) (beginlist) (literal altvar) (beginlist) (literal and) (beginlist) (literal vbound?) (variable 1) (endlist) (beginlist) (literal not) (literal !inrepeat) (endlist) (beginlist) (literal veval) (variable 1) (literal nil) (endlist) (endlist) (endlist) (endlist) (beginlist) (literal setdecisionpoint) (endlist) (lisp do (setf (glisp::veval 3) 0)) (beginlist) (literal or) (repeat 4 0 ((lisp do (setf (glisp::veval 3) (+ (glisp::veval 3) 1))) (call expandalternative ((variable 2) (variable 1) (variable 3))))) (beginlist) (literal progn) (beginlist) (literal deletedecisionpoint) (endlist) (beginlist) (literal failure) (call humanize ((beginlist) (literal alternatives) (variable 1) (variable 2 t ((endlist))))) (literal t) (endlist) (endlist) (endlist) (beginlist) (literal deletedecisionpoint) (endlist) (endlist) (endlist)) ((call onright) (rewritesto) (beginlist) (beginlist) (literal case) (beginlist) (literal altcheck) (variable 1) (endlist) (lisp do (setf (glisp::veval 3) 0)) (repeat 4 0 ((beginlist) (lisp value (setf (glisp::veval 3) (+ (glisp::veval 3) 1)) nil) (call expandpattern ((variable 2)) t) (endlist))) (beginlist) (literal t) (beginlist) (literal failure) (call humanize ((beginlist) (literal alternatives) (variable 1) (variable 2 t ((endlist))))) (endlist) (endlist) (endlist) (endlist)))) (lisp (literals (do (variable 1) (endlist) (rewritesto) (beginlist) (variable 1) (endlist)) (if (variable 1) (alternatives 2 ((variable 3)) nil) (endlist) (rewritesto) (beginlist) (beginlist) (literal or) (variable 1) (beginlist) (literal failure) (alternatives 2 ((variable 3)) ((call humanize ((beginlist) (literal lisp) (literal if) (variable 1) (endlist))))) (endlist) (endlist) (endlist)) (value (variable 1) (alternatives 2 ((literal t)) ((literal nil))) (alternatives 3 ((variable 4)) nil) (endlist) (branches ((call onleft) (rewritesto) (beginlist) (beginlist) (literal or) (beginlist) (alternatives 2 ((literal nextare?)) ((literal nextis?))) (variable 1) (endlist) (beginlist) (literal failure) (alternatives 3 ((variable 4)) ((call humanize ((beginlist) (literal lisp) (literal value) (variable 1) (endlist))))) (endlist) (endlist) (endlist)) ((call onright) (rewritesto) (beginlist) (beginlist) (literal setq) (literal !dest) (beginlist) (alternatives 2 ((literal xappend)) ((literal xcons))) (literal !dest) (variable 1) (endlist) (endlist) (endlist)))))) (rewritesto (endlist) (rewritesto) (call rhs) (beginlist) (beginlist) (literal setq) (literal !dest) (beginlist) (literal xnew) (endlist) (endlist) (endlist)) (literals (variable 1 t ((endlist))) (rewritesto) (beginlist) (beginlist) (literal case) (beginlist) (literal peek) (endlist) (repeat 2 0 ((call lhs) (call expandliteral ((variable 1))))) (beginlist) (literal t) (beginlist) (literal failure) (call humanize ((beginlist) (literal literals) (variable 1 t ((endlist))))) (endlist) (endlist) (endlist) (endlist)) (branches (variable 1 t ((endlist))) (rewritesto) (beginlist) (beginlist) (literal setdecisionpoint) (endlist) (beginlist) (literal and) (repeat 2 0 ((call lhs) (beginlist) (literal catch) (literal !failure) (call expandpattern ((variable 1)) t) (literal nil) (endlist) (beginlist) (literal restoredecisionpoint) (endlist))) (beginlist) (literal deletedecisionpoint) (endlist) (beginlist) (literal failure) (call humanize ((beginlist) (literal branches) (variable 1 t ((endlist))))) (literal t) (endlist) (endlist) (beginlist) (literal deletedecisionpoint) (endlist) (endlist)))) ((variable 1) (rewritesto) (lisp do (perror "unrecognized item in a pattern: " (glisp::veval 1))) (beginlist) (literal nil) (endlist)))))
-
- (defpfun expandalternative nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote expandalternative)) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (glisp::slvariable 1) (glisp::slvariable 2) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote and))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote or))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote null))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote altvar))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote =))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote altvar))) (glisp::srvariable 2) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote vset))) (glisp::srvariable 1) (glisp::srvariable 2) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::slvariable 2) (glisp::slvariable 3) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote and))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote or))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote null))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote altvar))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote =))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote altvar))) (glisp::srvariable 3) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote not))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote and))) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote catch))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote !failure))) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) t) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote restoredecisionpoint))) (glisp::rendlist) (glisp::rendlist) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote vset))) (glisp::srvariable 2) (glisp::srvariable 3) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) (glisp::rendlist) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'nil' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote expandalternative))) ((branches ((literal nil) (variable 1) (variable 2) (rewritesto) (beginlist) (literal and) (beginlist) (literal or) (beginlist) (literal null) (literal altvar) (endlist) (beginlist) (literal =) (literal altvar) (variable 2) (endlist) (endlist) (beginlist) (literal vset) (variable 1) (variable 2) (literal nil) (endlist) (endlist)) ((variable 1) (variable 2) (variable 3) (rewritesto) (beginlist) (literal and) (beginlist) (literal or) (beginlist) (literal null) (literal altvar) (endlist) (beginlist) (literal =) (literal altvar) (variable 3) (endlist) (endlist) (beginlist) (literal not) (beginlist) (literal and) (beginlist) (literal catch) (literal !failure) (call expandpattern ((variable 1)) t) (literal nil) (endlist) (beginlist) (literal restoredecisionpoint) (endlist) (endlist) (endlist) (beginlist) (literal vset) (variable 2) (variable 3) (literal nil) (endlist) (endlist)))))
-
- (defpfun expandliteral nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote expandliteral)) (glisp::setdecisionpoint) (and (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) (setq glisp::!dest (glisp::xnew)) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil))) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::lbeginlist) (glisp::setdecisionpoint) (and (catch !failure (let ((glisp::altvar (and (glisp::vbound? 1) (not glisp::!inrepeat) (glisp::veval 1 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote t)) (failure "'t'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote nil)) (failure "'nil'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 2 nil)) (and (or (null glisp::altvar) (= glisp::altvar 3)) (not (and (catch !failure (or (nextis? (quote otherwise)) (failure "'otherwise'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 3 nil)) (progn (glisp::deletedecisionpoint) (failure "'t' or 'nil' or 'otherwise'" t))) (glisp::deletedecisionpoint)) (glisp::mlvariable 2 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::rbeginlist) (case (glisp::altcheck 1) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote t)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (3 (setq glisp::!dest (glisp::xcons glisp::!dest (quote otherwise)))) (t (failure "'t' or 'nil' or 'otherwise'"))) (glisp::rendlist) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote next))) (glisp::rendlist) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (glisp::mlvariable 2 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (glisp::srvariable 1) (glisp::rbeginlist) (setq glisp::!dest (glisp::xcons glisp::!dest (quote next))) (glisp::rendlist) (glisp::rcall (quote expandpattern) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) t) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'t' or 'nil' or 'otherwise' or :1" t)) (glisp::deletedecisionpoint) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'nil' or '('" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote expandliteral))) ((branches ((literal nil) (rewritesto) (literal nil)) ((beginlist) (branches ((alternatives 1 ((literal t)) ((literal nil)) ((literal otherwise))) (variable 2 t ((endlist))) (rewritesto) (beginlist) (beginlist) (alternatives 1 ((literal t)) ((literal nil)) ((literal otherwise))) (endlist) (beginlist) (literal next) (endlist) (call expandpattern ((variable 2)) t) (endlist)) ((variable 1) (variable 2 t ((endlist))) (rewritesto) (beginlist) (variable 1) (beginlist) (literal next) (endlist) (call expandpattern ((variable 2)) t) (endlist)))))))
-